package com.qf.springbootitem.config;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
public class CustomRealm extends AuthorizingRealm {

    /**
     * 通过这个方法向shiro提供当前用户的权限相关信息
     * @param principalCollection
     * @return
     */

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {

        //1.获取当前用户的身份信息

        //2.去数据库查询用户user对应的角色

        //3.去数据库查询用户user对应的权限

        //4.把角色和权限信息封装到AuthorzationInfo对象中

        //5.添加角色信息

        //6.添加权限信息

        //7.返回给shiro

        return null;
    }


    /**
     * 通过这个方法向shiro提供当前用户身份认证信息
     * @param authenticationToken
     * @return
     * @throws AuthenticationException
     */
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {

        //1.拿到身份认证信息用户名


        //2. 根据 token中的用户提供的身份信息（用户名），去数据库中查询该用户的密码



        //2.5. 如果有异常，mvc框架会把当前请求forward 到 /error url中 if user == null


        //3.需要把数据库中的密码返回给shiro
        //注意：第一个参数可以放从数据库路查询出来的user对象也可以放用户名，这里会影响从shiro中获取用户身份信息获取到的对象
        //如果放入user对象，后续获取的身份信息就是user对象
        //第二个参数放密码
        //第三个参数为当前提供身份信息的realm对象的名字





        //查询数据库获取user

        //return userDao.selectOne(new QueryWrapper<TUser>().eq("name",userName));
        return null;
    }
}
